Matthias Clasen [Thu, 8 Dec 2011 04:55:33 +0000 (23:55 -0500)]
Documentation additions
Matthias Clasen [Mon, 5 Dec 2011 22:50:17 +0000 (17:50 -0500)]
GtkApplicationWindow: Always install accelerators
We want accelerators to work, even if the menus are not shown
locally, so we can't rely on the GtkMenu code to set them up
for us. Currently, this code only installs accelerators when the
window is realized.
Matthias Clasen [Mon, 5 Dec 2011 22:44:03 +0000 (17:44 -0500)]
Bloatpad: Add an accelerator in the menu
Matthias Clasen [Mon, 5 Dec 2011 22:41:56 +0000 (17:41 -0500)]
GtkApplication: Extract accelerators from menus
This allows to specify accelerators in a convenient way, by
adding accel="..." attributes to the menu items in the
XML for the menu.
Currently, the accelerators are extracted only once, when the
menu property is changed on the application.
Matthias Clasen [Mon, 5 Dec 2011 22:37:04 +0000 (17:37 -0500)]
Introduce gtkaccelmapprivate.h
Move internal accel map API there and update all users.
Also, add an internal function to create an accel path for
an action and parameter, and use it in gtkapplication.c and
gtkmodelmenuitem.c instead of duplicating that code.
Matthias Clasen [Mon, 5 Dec 2011 22:29:32 +0000 (17:29 -0500)]
Bloatpad: Add an accelerator
Matthias Clasen [Mon, 5 Dec 2011 22:28:19 +0000 (17:28 -0500)]
GtkApplication: Add API to install accelerators for actions
Matthias Clasen [Mon, 5 Dec 2011 22:14:57 +0000 (17:14 -0500)]
GtkApplicationWindow: Set the accel group on constructed windows
This will make the menuitems pick up matching accel map entries
automatically. Currently, nothing creates such accel map entries,
though.
Matthias Clasen [Mon, 5 Dec 2011 22:10:17 +0000 (17:10 -0500)]
GtkApplicationWindow: Add a GtkAccelGroup
This will be used in the following patches.
Matthias Clasen [Mon, 5 Dec 2011 22:41:44 +0000 (17:41 -0500)]
Fix a gtk-doc warning
Ryan Lortie [Mon, 5 Dec 2011 05:27:11 +0000 (00:27 -0500)]
GtkApplication: export windows on the bus
And advertise their location on the bus using X11 properties.
Ryan Lortie [Mon, 5 Dec 2011 05:25:28 +0000 (00:25 -0500)]
(trivially) implement 'shutdown' in GtkApplication
Matthias Clasen [Mon, 5 Dec 2011 00:16:08 +0000 (19:16 -0500)]
Add an example
Matthias Clasen [Sun, 4 Dec 2011 23:40:19 +0000 (18:40 -0500)]
Update GtkApplicationWindow docs
Matthias Clasen [Sun, 4 Dec 2011 23:33:01 +0000 (18:33 -0500)]
Whitespace fix
Matthias Clasen [Sun, 4 Dec 2011 00:35:27 +0000 (19:35 -0500)]
Make accelmap initialization more forgiving
Matthias Clasen [Sun, 4 Dec 2011 00:34:32 +0000 (19:34 -0500)]
Clean up includes
Ryan Lortie [Sat, 3 Dec 2011 23:52:35 +0000 (18:52 -0500)]
bloatpad: add proper sections to the menus
Ryan Lortie [Sat, 3 Dec 2011 23:45:32 +0000 (18:45 -0500)]
Split off GMenuModel -> GtkMenuBar code
Put this in a separate file and substantially refactor it.
Move handling of submenu creation into gtkmodelmenuitem where it
belongs.
Improve our handling of when to show separators or not.
Ryan Lortie [Sat, 3 Dec 2011 19:55:03 +0000 (14:55 -0500)]
Watch "shell shows menu" settings for changes
Correctly monitor the GtkSettings for changes to the
"gtk-shell-shows-app-menu" and "gtk-shell-shows-menubar" properties.
Ryan Lortie [Sat, 3 Dec 2011 18:35:26 +0000 (13:35 -0500)]
GtkSettings: quartz: shell always shows menus
Matthias Clasen [Fri, 2 Dec 2011 23:21:10 +0000 (18:21 -0500)]
Whitespace fixes
Matthias Clasen [Fri, 2 Dec 2011 23:18:58 +0000 (18:18 -0500)]
Never add separators to menubars
Ryan Lortie [Fri, 2 Dec 2011 21:10:31 +0000 (16:10 -0500)]
gmenu testcase: update to glib API changes
Ryan Lortie [Fri, 2 Dec 2011 15:36:49 +0000 (10:36 -0500)]
bloatpad: move action/menu setup to ::startup
No need to waste time doing this in init() if we are not going to become
the primary instance.
Ryan Lortie [Fri, 2 Dec 2011 15:32:10 +0000 (10:32 -0500)]
bloatpad: port to GActionMap for application
g_application_set_action_group() is now deprecated.
Ryan Lortie [Fri, 2 Dec 2011 03:59:27 +0000 (22:59 -0500)]
GtkModelMenuItem: don't leak a GVariant
Ryan Lortie [Fri, 2 Dec 2011 03:43:54 +0000 (22:43 -0500)]
bloatpad: use GtkBuilder for constructing menus
This is closer to what a real application would want to do.
Ryan Lortie [Fri, 2 Dec 2011 03:33:30 +0000 (22:33 -0500)]
GtkModelMenuItem: omit indicator if not required
GtkModelMenuItem, being based on GtkCheckMenuItem, was always reserving
space for a check/radio indicator. This ends up looking pretty strange
in a GtkMenuBar.
Don't reserve space for the indicator unless it's appropriate.
Ryan Lortie [Fri, 2 Dec 2011 03:16:34 +0000 (22:16 -0500)]
GtkApplicationWindow: nuke some g_print spew
Ryan Lortie [Fri, 2 Dec 2011 03:14:57 +0000 (22:14 -0500)]
GtkApplcationWindow: plug two obvious leaks
Colin Walters [Fri, 2 Dec 2011 03:13:56 +0000 (22:13 -0500)]
GtkApplicationWindow: Consistently unparent menubar
We create it floating, and don't hold an extra ref, so we should
just unparent it.
Ryan Lortie [Fri, 2 Dec 2011 03:01:07 +0000 (22:01 -0500)]
GtkApplicationWindow: clean up menubar logic
Matthias Clasen [Fri, 2 Dec 2011 01:49:05 +0000 (20:49 -0500)]
Only add a separator when a section ends
Ryan Lortie [Fri, 2 Dec 2011 01:39:11 +0000 (20:39 -0500)]
introduce GtkModelMenuItem
This GtkMenuItem subclass (and GActionObserver implementation) contains
all the knowledge necessary for converting a GMenuModel item description
into a GtkMenuItem.
Remove much of the code that used to do this from
gtkapplicationwindow.c.
Ryan Lortie [Fri, 2 Dec 2011 00:57:32 +0000 (19:57 -0500)]
GtkSettings: add shell-shows-menubar property
Unity will set this to tell us that it is going to handle displaying the
menubar.
Matthias Clasen [Thu, 1 Dec 2011 23:13:15 +0000 (18:13 -0500)]
Only add separators when a section actually ends
Matthias Clasen [Thu, 1 Dec 2011 22:46:28 +0000 (17:46 -0500)]
Bloatpad: Add a View menu for fullscreen
Matthias Clasen [Thu, 1 Dec 2011 22:41:46 +0000 (17:41 -0500)]
Bloatpad: Don't leak a menu model
Colin Walters [Thu, 1 Dec 2011 22:53:28 +0000 (17:53 -0500)]
bloatpad: Be 640x480 by default
Because otherwise we're just a few pixels, and this is the least lame
solution I know of in GTK+.
Colin Walters [Thu, 1 Dec 2011 22:47:34 +0000 (17:47 -0500)]
GtkApplicationWindow: Further sanitize handling of merging app menu and menubar
The _set_show_app_menu should really be _set_show_menubar().
Also, correctly display just the window menu in the window when run
under GNOME 3.
Colin Walters [Thu, 1 Dec 2011 22:12:20 +0000 (17:12 -0500)]
bloatpad: Fix Edit to be a submenu
Colin Walters [Thu, 1 Dec 2011 21:46:36 +0000 (16:46 -0500)]
GtkApplication: Merge app menu and menubar
Change bloatpad to have both an app menu and a menubar.
Matthias Clasen [Thu, 1 Dec 2011 20:25:46 +0000 (15:25 -0500)]
GtkApplicationWindow: Make mnemonics work for stateful actions
Matthias Clasen [Thu, 1 Dec 2011 20:25:24 +0000 (15:25 -0500)]
Bloatpad: Add mnemonics to the menu
Colin Walters [Thu, 1 Dec 2011 18:29:41 +0000 (13:29 -0500)]
GtkApplicationWindow: Don't unref a NULL object
Ryan Lortie [Thu, 1 Dec 2011 17:18:22 +0000 (12:18 -0500)]
Adapt to changes in GLib API
g_application_get_menu() -> get_app_menu().
Matthias Clasen [Thu, 1 Dec 2011 17:17:53 +0000 (12:17 -0500)]
Drop GtkApplicationMenuButton for now
This feels premature; we do have the fallback situation covered
adaequately with the menubar, and people can do their own creative
solutions with gtk_application_window_get_menu(), so we don't have
to offer a widget for this right now.
Matthias Clasen [Thu, 1 Dec 2011 13:51:22 +0000 (08:51 -0500)]
Remove a redundant test
Matthias Clasen [Thu, 1 Dec 2011 13:33:08 +0000 (08:33 -0500)]
GtkApplicationMenuButton: add docs
Matthias Clasen [Thu, 1 Dec 2011 11:30:10 +0000 (06:30 -0500)]
Undoccommentify action muxer files
Matthias Clasen [Thu, 1 Dec 2011 05:21:11 +0000 (00:21 -0500)]
Whitespace fixes
Matthias Clasen [Thu, 1 Dec 2011 05:09:45 +0000 (00:09 -0500)]
Hook up docs
Matthias Clasen [Thu, 1 Dec 2011 05:02:08 +0000 (00:02 -0500)]
Remove no-longer existing function
Matthias Clasen [Thu, 1 Dec 2011 04:59:32 +0000 (23:59 -0500)]
GtkApplicationWindow: more docs
Matthias Clasen [Thu, 1 Dec 2011 04:55:05 +0000 (23:55 -0500)]
Include gtkapplicationmenubutton.h in gtk.h
Matthias Clasen [Thu, 1 Dec 2011 04:53:39 +0000 (23:53 -0500)]
GtkApplicationWindow: mark a string for translation
Matthias Clasen [Thu, 1 Dec 2011 04:49:23 +0000 (23:49 -0500)]
Some coding style fixes
Matthias Clasen [Thu, 1 Dec 2011 04:48:59 +0000 (23:48 -0500)]
GtkApplication: doc improvement
Matthias Clasen [Thu, 1 Dec 2011 00:14:48 +0000 (19:14 -0500)]
Some initial docs
Matthias Clasen [Wed, 30 Nov 2011 21:50:17 +0000 (16:50 -0500)]
Drop an unused variable
Matthias Clasen [Wed, 30 Nov 2011 21:33:32 +0000 (16:33 -0500)]
Don't call g_object_unref on a variant
Tsk, tsk...
Colin Walters [Wed, 30 Nov 2011 20:55:31 +0000 (15:55 -0500)]
GtkApplicationWindow: Use dispose for GObjects
This ensures we break cyclic references.
Colin Walters [Wed, 30 Nov 2011 20:41:43 +0000 (15:41 -0500)]
gtkapplicationwindow: Pick up gtk-shell-shows-app-menu XSetting
Calling gtk_application_window_set_show_app_menu() is now an override
for that setting. If you don't call it, we pick up the default.
Colin Walters [Wed, 30 Nov 2011 20:41:02 +0000 (15:41 -0500)]
gdk: Fix prototype for gdk_x11_window_set_utf8_property
Ryan Lortie [Wed, 30 Nov 2011 20:25:12 +0000 (15:25 -0500)]
bloatpad: use GtkApplicationMenuButton
Ryan Lortie [Wed, 30 Nov 2011 20:24:22 +0000 (15:24 -0500)]
add GtkApplicationMenuButton
Ryan Lortie [Wed, 30 Nov 2011 18:39:38 +0000 (13:39 -0500)]
bloatpad: add 'win.fullscreen' action
Ryan Lortie [Wed, 30 Nov 2011 17:07:25 +0000 (12:07 -0500)]
bloatpad: make "about" a window action
By making "about" a per-window action, we can pop the about dialog up on
top of the correct window instead of trying to guess from the
application list of windows.
Ryan Lortie [Wed, 30 Nov 2011 17:06:40 +0000 (12:06 -0500)]
GtkApplicationWindow: wire up action activations
Wire the 'activate_action' and 'change_action_state' vfuncs through to
the GSimpleActionGroup.
Ryan Lortie [Wed, 30 Nov 2011 16:58:38 +0000 (11:58 -0500)]
gtk.symbols fixes
Ryan Lortie [Wed, 30 Nov 2011 16:51:41 +0000 (11:51 -0500)]
GtkApplicationWindow: implement GActionMap
Ryan Lortie [Wed, 30 Nov 2011 14:41:00 +0000 (09:41 -0500)]
port bloatpad to the new APIs
Ryan Lortie [Wed, 30 Nov 2011 14:34:29 +0000 (09:34 -0500)]
add GtkApplicationWindow
This is a GtkWindow subclass that "application windows" will use. Each
is associated with a GtkApplication, has the ability to show menus and
will have its own associated set of actions.
Ryan Lortie [Wed, 30 Nov 2011 14:33:03 +0000 (09:33 -0500)]
add GActionMuxer and observer interfaces
These were destined for GLib, but they don't really make sense as a
public API. Instead, we'll copy/paste them around between the various
codebases that need to render menus.
Ryan Lortie [Wed, 30 Nov 2011 03:28:11 +0000 (22:28 -0500)]
GtkSettings: add shell-shows-app-menu property
This is a boolean property that will be set to TRUE if the current
desktop environment is capable of displaying the application menu as
part of the desktop shell.
If it is FALSE then the application will need to display the menu for
itself.
Matthias Clasen [Tue, 29 Nov 2011 22:44:11 +0000 (17:44 -0500)]
Make it build against the current wip/menus-rebase3 branch
Colin Walters [Tue, 29 Nov 2011 20:59:20 +0000 (15:59 -0500)]
testgmenu: #ifdef out non-compiling code for now
Matthias Clasen [Tue, 29 Nov 2011 04:40:18 +0000 (23:40 -0500)]
Add a very bad fallback check
...maybe committing this inspires some better solution.
Colin Walters [Fri, 25 Nov 2011 22:22:16 +0000 (17:22 -0500)]
window: Set a _DBUS_APPLICATION_ID X11 window property
This will allow gnome-shell to reference it.
Colin Walters [Fri, 25 Nov 2011 22:21:05 +0000 (17:21 -0500)]
x11: Add gdk_x11_window_set_utf8_property
A convenience function to manipulate UTF-8 X11 properties; no point
in wrapping each one in individual setters.
Matthias Clasen [Sun, 27 Nov 2011 04:44:37 +0000 (23:44 -0500)]
GtkApplication: Insert separators after sections
The previous code was only inserting a separator when a new
section was starting right away, which may not always be the
case.
Matthias Clasen [Sun, 27 Nov 2011 04:42:33 +0000 (23:42 -0500)]
testgmenu: Insert separators after sections
The previous code was only inserting a separator when a new
section was starting right away.
Matthias Clasen [Sat, 26 Nov 2011 18:32:48 +0000 (13:32 -0500)]
GtkApplication: Initial attempt at section headings
This should be redone to show the label together with the
separator line, somehow. For now, just put the label below
the separator, as a separate item.
Matthias Clasen [Sat, 26 Nov 2011 18:27:18 +0000 (13:27 -0500)]
testgmenu: Initial attempt at section headings
This should be redone to show the label together with the
separator line, somehow. For now, just put the label below
the separator, as a separate item.
Matthias Clasen [Sat, 26 Nov 2011 18:06:04 +0000 (13:06 -0500)]
GtkApplication: use activate for actions here, too
Matthias Clasen [Sat, 26 Nov 2011 17:39:05 +0000 (12:39 -0500)]
testgmenu: Use activate with parameter for radio actions
This is how stateful actions are supposed to be activated, using
change_state for this was not right at all.
Matthias Clasen [Sat, 26 Nov 2011 16:56:42 +0000 (11:56 -0500)]
testgmenu: Use activate for toggle actions
This is how stateful actions are supposed to be activated, using
change_state for this was not right at all.
Colin Walters [Mon, 21 Nov 2011 14:58:37 +0000 (09:58 -0500)]
testgmenu: Quit on delete-event
Matthias Clasen [Sat, 19 Nov 2011 05:02:09 +0000 (00:02 -0500)]
Adapt to api changes in GMenuModel
Matthias Clasen [Fri, 18 Nov 2011 02:58:20 +0000 (21:58 -0500)]
Adapt to object path conventions
Seems common to expect 'path == bus name with slashes'.
Matthias Clasen [Wed, 9 Nov 2011 04:36:32 +0000 (23:36 -0500)]
bloatpad: Add an example app menu
The bloatpad example shows simple GtkApplication usage,
so it makes sense to test app menu api here as well.
Matthias Clasen [Wed, 9 Nov 2011 04:35:06 +0000 (23:35 -0500)]
GtkApplication: add a way to get the appmenu
This function either returns a GtkMenu or NULL.
Still to do: detect if the app menu is externally handled.
Matthias Clasen [Wed, 9 Nov 2011 00:04:33 +0000 (19:04 -0500)]
Drop an unused variable
Matthias Clasen [Wed, 9 Nov 2011 00:03:40 +0000 (19:03 -0500)]
Remove an unneeded include
Matthias Clasen [Tue, 8 Nov 2011 21:28:22 +0000 (16:28 -0500)]
testgmenu: Demonstrate how translatable labels work
Matthias Clasen [Tue, 8 Nov 2011 21:24:32 +0000 (16:24 -0500)]
Pass domain to the menu parser
This is necessary to make translations in markup work.
Matthias Clasen [Sun, 6 Nov 2011 06:17:15 +0000 (01:17 -0500)]
More dynamic changes
Matthias Clasen [Sun, 6 Nov 2011 05:14:33 +0000 (01:14 -0400)]
Cleanups
Separate the menu generation code and all callbacks in a
MenuHolder struct.
Matthias Clasen [Tue, 1 Nov 2011 23:53:51 +0000 (19:53 -0400)]
Quick-and-dirty GtkBuilder integration
This makes GtkBuilder accept a GMenuMarkup tree at the toplevel
(ie with <menu id='foo'> being a child of <interface>) and the resulting
GMenu object can be obtained via gtk_builder_get_object (builder, "foo").